// 管理用户信息store
import {defineStore} from "pinia";
import {ref} from "vue";
import {loginAPI} from "@/apis/user.js";
import {useCartStore} from "@/stores/cart.js";
import {mergeCartAPI} from "@/apis/cart.js";

export const useUserStore = defineStore("user", ()=>{
    const cartStore = useCartStore();
    // 定义用户数据state
    const userInfo=ref({})
    // 定义获取接口数据的action函数
    const getUserInfo=async({account,password})=>{
        const res=await loginAPI({account,password})
        userInfo.value=res.result
        // 合并购物车操作
        await mergeCartAPI(cartStore.cartList.map(item=>{
            return {
                skuId: item.skuId,
                selected: item.selected,
                count: item.count
            }
        }))
        // 更新购物车列表
        await cartStore.updateCart()
        console.log("合并并且更新了购物车")
    }
    // 退出时清除用户数据
    const clearUserInfo=()=>{
        userInfo.value={}
        cartStore.clearCart()
    }

    // 以对象格式吧state和action 返回
    return {
        userInfo,
        getUserInfo,
        clearUserInfo
    }
},
    {
        persist: true,
    },
    )